package com.springboot.project.common.dao;

import com.springboot.project.common.entity.Module;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.springboot.project.common.node.ModuleNode;
import com.springboot.project.common.node.ZTreeNode;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
  * 菜单表 Mapper 接口
 * </p>
 *
 * @author lby
 * @since 2018-04-01
 */
public interface ModuleDao extends BaseMapper<Module> {

    List<ModuleNode> getModuleListByRoles(List<Integer> roleId);

    List<String> getPermissionsByRoleId(int roleId);

    List<Integer> getMenuIdsByRoleId(@Param("roleId") Integer roleId);

    /**
     * 获取菜单列表树
     */
    List<ZTreeNode> menuTreeList();

    /**
     * 获取菜单列表树
     */
    List<ZTreeNode> menuTreeListByMenuIds(List<Integer> menuIds);

    /**
     * 删除某个角色的所有权限
     * @param roleId 角色id
     */
    int deleteByRoleId(@Param("roleId") Integer roleId);

    /**
     * 新增角色，模块关系
     */
    int insertRelation(@Param("roleId") Integer roleId, @Param("menuId") Integer menuId);

    /**
     * 模块树
     */
    List<Module> list(Map<String, Object> params);

    /**
     * 获取父级模块树
     */
    List<ZTreeNode> pModuleTree();

    /**
     * 按条件查找
     */
    List<Module> getListByCondition(@Param("condition") String  condition);
}